package cn.com.idmy.base.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 表示一个数据库表的注解。
 * 该注解可以用于类上，以指定该类对应的数据库表的相关信息。
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Table {

    /**
     * 表的注释，描述该表的用途或功能。
     *
     * @return 表的注释
     */
    String title() default "";

    /**
     * 表的名称，默认为空字符串。
     * 如果为空，则使用实体类的名称作为表名。
     * @return 表的具体名称
     */
    String name() default "";

    /**
     * 表的模式，默认为空字符串。
     * 用于指定数据库模式（schema），如果有的话。
     * @return 表的模式
     */
    String schema() default "";

    /**
     * ID 类型，默认为 DEFAULT。
     * 用于指定表中主键的生成策略。
     * @return ID 类型
     */
    IdType idType() default IdType.DEFAULT;
}